package net.siufung.core.model.enums;

import com.google.common.collect.Lists;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import net.siufung.core.model.EnumsVo;

import java.util.List;

/**
 * @author 陈建峰
 * @since 2021/11/29 5:43 下午
 */
@ToString
public enum DefaultEnum {

    /**
     * 是
     */
    IS(true,"是"),

    /**
     * 否
     */
    NOT(false,"否");

    @Getter
    @Setter
    private Boolean value;

    @Getter
    @Setter
    private String desc;

    DefaultEnum(Boolean value, String desc) {
        this.value = value;
        this.desc = desc;
    }

    public static DefaultEnum get(Boolean value) {
        DefaultEnum[] defaultEnums = values();
        for (DefaultEnum defaultEnum : defaultEnums) {
            if (defaultEnum.getValue().equals(value)) {
                return defaultEnum;
            }
        }
        return null;
    }

    public static String getDesc(Boolean value) {
        DefaultEnum[] defaultEnums = values();
        for (DefaultEnum defaultEnum : defaultEnums) {
            if (defaultEnum.getValue().equals(value)) {
                return defaultEnum.getDesc();
            }
        }
        return null;
    }

    public static List<EnumsVo> getList(){
        List<EnumsVo> defaultEnumList = Lists.newLinkedList();
        EnumsVo enumsVO = null;
        for (DefaultEnum defaultFlagEnum: values()) {
            enumsVO = new EnumsVo();
            enumsVO.setValue(defaultFlagEnum.getValue());
            enumsVO.setDesc(defaultFlagEnum.getDesc());
            defaultEnumList.add(enumsVO);
        }
        return defaultEnumList;
    }
}
